home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / symmat_c < prev    next >
Internet Message Format  |  1995-03-31  |  30KB

  1. From: Carlos Ferraro <carlos@fy.chalmers.se>
  2. Subject:  v05i029:  symmat_cf - Manipulate Symbolic Matrices v1.0, Part01/01
  3. Newsgroups: comp.sources.hp48
  4. Followup-To: comp.sys.hp48
  5. Approved: spell@seq.uncwil.edu
  6.  
  7. Checksum: 3490516001 (verify with brik -cv)
  8. Submitted-by: Carlos Ferraro <carlos@fy.chalmers.se>
  9. Posting-number: Volume 5, Issue 29
  10. Archive-name: symmat_cf/part01
  11.  
  12.  
  13. BEGIN_DOC symmat.doc
  14.                     Gothemburg, 1/6/1992
  15.  
  16. Hello everybody!
  17.  
  18. Disappointed by the lack of a good program for dealing with symbolic matrices,
  19. I programmed one myself. I have studied different programming languages
  20. like ML , Modula-2 and Turbo-Pascal, and most of all, I've spent hundreds of
  21.  hours optimizing Forth in the old 28C (because of it's stupidly little
  22. memory).  That's why I begun to program this set of utilities and programs
  23. half a year ago and have been improving it constantly since then. For about
  24. a month ago I had no part of the code left that could be improved. Seems that
  25. every little row of the code is optimized ("upspeeded") to the possible
  26. limit (using RPN Forth). I didn't want to use other languages because of
  27. the always present possibility of failures in compatibility.
  28. I've now achieved :
  29.  
  30. 1) greatest possible speed "in the market"
  31. 2) most effektive, elegant and short code
  32. 3) completeness (all kind of tools)
  33. 4) free of bugs (well, well,...)
  34. 5) CEAP = (Complex Exam-Aware Program)
  35.  
  36. IT'S OBVIOUS THAT YOU MUST HAVE THE FLAGS -2 AND -3 CLEARED SO THAT
  37. THE CALCULATOR IS ABLE TO HANDLE WITH SYMBOLS !!
  38. BEFORE YOU DOWNLOAD IT, READ ALL THE INSTRUCTIONS AT THE BOTTOM OF
  39. THIS TEXT (BELOW EXAMPLES) !!
  40.  
  41. For all the text down here, the following symbols will represent :
  42.  
  43. S1 = a symbolic matrix in the form of a list of lists, for ex. :
  44.        { {a b 1} {0 a 2 } {b 1 3} } represents a matrix:     [[a b 1]
  45.                                      [0 a 2]
  46.                                      [b 1 3]]
  47. Q1 = like S1 but ALLWAYS quadratic.
  48.  
  49. V1 = a symbolic vector in the form of a list (wich I will call "simple" troughout the
  50.     instructions) or a list of one list,
  51.               for ex. : { '2*x' '1/y' z } or { { '2*x' '1/y' z } }
  52.          that is : [ '2*x' '1/y' z ]
  53.  
  54. sy = a symbol, f. ex. : 't' , 'k' , etc.
  55.  
  56. n = an integer
  57.  
  58. AVAILABLE PROGRAMS IN THE DIRECTORY SYMB : 
  59.  
  60. ( Sorry, this editor doesn't write greek symbols!! So (lambda) means
  61. the corresponding greek symbol as you'll see it at the HP48 )
  62.  
  63.  
  64. Power, (lambda)Eqv , Cross , M->L , L->M , AplyPrg , DetExCo
  65. Inv , AXB , Mmult , Smult , ID , ADD , Transp , Jacobi , |^Stack
  66. DetNN , D33 , D22 , Minor , ChCol , DelN , ->Mat .
  67. You will also get a directory called OWN and a CST. Reasons for this
  68. are given below.
  69.  
  70. INSTRUCTIONS:
  71.                         In:        Out:
  72.  
  73. 1) Power  - raises S1 to the power n        2:Q1        
  74.                         1:n        1:Q1^n
  75.  
  76.  
  77. 2) (lambda)Eqv  - gives the characteristical equation of any of the
  78.                following inputs :     a real (HP48) matrix (quadratic)
  79.                     a complex (HP48) matrix   "
  80.                     a symb. matrix as described above.
  81.     This program is extremely usefull and you don't even need to convert your
  82.     real or complex matrix into a list (it is done automatically).
  83.     The equation you get is in (lambda) variable. Automatically the program stores     the 
  84.     following matrix : (S1-(lambda)*I) in the variable (lambda)Mat, where I is     
  85.     the identity matrix, in the directory OWN, there the program ends. Why?     
  86.     Because it's ugly to get a program directory full of variables!! Anyway, I     
  87.     hope you weren't sleeping during the linear algebra lessons and understand     
  88.     what I     mean...
  89.     In:                Out:
  90.     1: Q1 or (see above)        1: the char. equation (in OWN)
  91.  
  92. 3) Cross  -      returns the cross-product of two symb. vectors, as a new symb. vector.
  93.             In:            Out:
  94.             2:V1            1:V1 X V2
  95.             1:V2
  96.  
  97. 4) M->L  -  converts a real or compl. matrix in HP48-shape into one in
  98.         "symbolic" shape (list of lists)
  99.  
  100. 5) L->M  -  the opposite of M->L
  101.  
  102. 6) AplyPrg  - This is a "different" prog., in the means that it takes
  103.         a symb. matrix (or vector) and another program as its
  104.         arguments, and it applies the given prog. to the
  105.         matrix (or vector), element by element. This is especially             
  106.         usefull when you want to have all the elements in a matrix                
  107.         beautifully collected. or evaluated or whatever.
  108.         In:                Out:
  109.         2:S1                1: (see above)
  110.         1:<< a Program here >>
  111.  
  112.  
  113.  
  114. 7) DetExCo  -      This gives the determinant of a quadr. matrix fully collected.
  115.  
  116.         In:            Out:
  117.         1:Q1            1: (See above)
  118.  
  119. 8) Inv  -     Gives the invers of a matrix using Cramer's rule.
  120.         If you wonder why the output is in this form, the answer is
  121.         speed and visual optimization.
  122.         In:        Out:
  123.         1:Q1        2:The inverted matrix where each element has to be
  124.                   divided by the determinant (I think
  125.                   it's called the adjoint matrix (?) )
  126.                 1:the determinant .
  127.  
  128. 9) AXB  -      Solves the system of equations using the I-don't-remeber-what-
  129.         algorithm, but which is faster than taking the invers and
  130.         then multiplying with the vector.
  131.         In:            Out:
  132.         2:V1            2:The solution-vector where each element has
  133.                          to be divided by the determinant.
  134.         1:Q1            1:The determinant.
  135.  
  136. 10) Mmult  -    Matrix multiplication. It's your responsability to check
  137.         the dimensions of the matrices.
  138.         In:            Out:
  139.         2:S1            1:S1*S2
  140.         1:S2
  141.  
  142. 11) Smult  -    Multiplies a matrix by a scalar (which can be a symbol as well).
  143.         In:            Out:
  144.         2:S1            1: symbol*S1
  145.         1: (any symbol here)
  146.  
  147. 12) ID  -    Makes an "identity matrix" with the given symbol as the
  148.         elements of the diagonal.
  149.         2: (any symbol)        1: (see above), size n*n
  150.         1:n
  151.  
  152. 13) ADD  -    Addition of matrices, check dimensions.
  153.         2:S1            1:S1+S2
  154.         1:S2
  155.  
  156. 14) Transp -    Transponat of a matrix or vector, any dimensions!
  157.         1:S1 or V1        1: S1*  or  V1*
  158.  
  159.  
  160. 15) Jacobi -    This program gives the functional matrix of an inputed
  161.         vector, i.e. the Jacobian matrix. This is extremely usefull
  162.         when you want to obtain the Jacobi-determinant to use it
  163.         for ex. in a two or three dimensional integration where you must
  164.         change coordinates!
  165.         This prog. is designed to work only with max. 3 dim.,
  166.         because it is what we normally use at the exams. That is
  167.         why you MUST have 3 variables of derivation in a list at level
  168.         1 !! If you use less variables input zeros instead!! For ex. { x y 0 } . 
  169.         It's obvious that the elements of the vector must be differen-
  170.         tiable in terms of the variables in the list !!!!
  171.         Observe that you can choose any variables, but make shore that
  172.         they are empty  or derivation won't work - sorry not my fault!
  173.         2:V1
  174.         1: { a list of three variables of derivation }
  175.  
  176.         Out:    1: (the Jacobi-matrix)
  177.  
  178. All the other programs are functions used in these progs above.
  179. DO NOT REMOVE ANY OF THEM !!!!
  180. Most of them are also usefull independently, for ex. :
  181.  
  182. 16) |^Stack -    splits an S1 into its elements, corresponds to OBJ-> to normal matrices
  183.         but without giving the size of the S1.
  184.         In: S1            Out: (the elements in order in the stack)
  185.  
  186. 17) DetNN -    The determinant of an n*n matrix NOT COLLECTED.
  187. 18) D33 and D22 are the basic cases of DetNN.
  188.  
  189. 19) Minor  -    The minor of a matrix. Used in Inv .
  190.         3: n1 (row position)
  191.         2: Q1                    Out:
  192.         1: n2 (column position)            1: (the minor at that position)
  193.  
  194. 20) ChCol -    Substitutes one column of a matrix by another given.
  195.         Note that no check of simensions is done, because the program
  196.         who calls this function will never provide a vector of wrong size.
  197.         3: (a simple vector, NOT a list of one list)
  198.         2: S1
  199.         1: n (the column number to be replaced)        
  200.  
  201.         Out: (the "new" S1)
  202.  
  203. 22) DelN -    Deletes a given element of a list, i.e. deletes a row of an S1
  204.         or a column of a (simple) V1 .
  205.         2: S1 or V1
  206.         1:  n                Out: (the "new" list)
  207.  
  208. 23) ->(lambda)Mat  -  Substitutes an eigenvalue in the (lambda)Mat and
  209.             evaluates it so that you can reduce this matrix 
  210.             and get the eigenvectors. It is available from
  211.             the CST in OWN as well !!
  212.             1: n            1: (Q1-n*I)
  213.  
  214.  
  215. EXAMPLES:
  216. 1)        Calculate the 5:th power of the matrix :    { { a b } { 0 a } }
  217.         In:                Out:
  218.         2: { { a b } { 0 a } }
  219.         1: 5                1: { { 'a^5' '5*a^4*b' } { 0 'a^5' } }
  220.  
  221.         The operation takes only about 4 seconds, but ExCo takes about 28 s.
  222.         Total time aprx. 32 seconds
  223.  
  224.  
  225. 2)        Calculate the characteristical equation of the following matrix.
  226.         In:    [ [1 0 1]
  227.               [2 4 3]
  228.               [6 .5 5] ]
  229.         
  230.         Push (lambda)Eqv and you'll get 
  231.  
  232.         Out: '-4.5+10*(lambda)^2-(lambda)^3-21.5*(lambda)' 
  233.         
  234.         The program itself takes less then 3 seconds.
  235.         (The determinant takes only 0.7 seconds !!!!!! Beat if you can !!)
  236.         Again it's ExCo who takes time (27 seconds).
  237.         Using for ex. the grat polynom-solving program found in News you'll
  238.         get the eigenvalues of the matrix. As you then go back to OWN
  239.         (there is when you are when execution is ready) and use ->(lambda)Mat
  240.         you'll get the matrices there you can do some echelon and direct find
  241.         the eigenvectors. For ex. one eigenvalue here is 3.51064322082 
  242.         In:3.51064322082
  243.         Press the CST-menu, press  ->(lambda)Mat  
  244.         and you'll get: { { -2.5106...  0  1 }
  245.                   { 2  0.4893...  3  }
  246.                   { 6 0.5  1.4893... } }
  247.  
  248.         I'm sorry I haven't got  a clearer example, but you have certainly
  249.         lots of them in your linear algebra books.
  250.  
  251.  
  252. 3)        Taking the cross product of two vectors is really ease:
  253.         2: { a 0 q }
  254.         1: { 1 '2*a' '.5*q' }        1: { '-2*a*q' '.5*a*q+q' '2*a^2' }
  255.         The total execution time is 5.55 seconds, icluding ExCo !!!
  256.  
  257. 4)        Input [ [ 1 2 3 4 ]    Press M->L and you get  { { 1 2 3 4 }
  258.             [ 8 0 9 6 ]                  { 8 0 9 6 }
  259.             [ 3 5 7 1 ] ]                  { 3 5 7 1 } }
  260.  
  261. 5)        Suppose you have a symbolic matrix S1 with "ugly" terms like those
  262.         you get after multiplication. Then you do like this :
  263.         2: S1
  264.         1: 1 ( or 2 or << desired program  >> )
  265.  
  266.         Press  AplyPrg  and you'll get the matrix now with every term
  267.         fully collected ( if you entered a 1 at level 1 ). That is, AplyPrg
  268.         applies the desired program to every element of the matrix.
  269.         Inputting a 1 or a 2 instead of a program at level 1 are only
  270.         shortcuts to  ExCo  and  FrColct.
  271.  
  272. 6)        FrColct works like this; suppose you have :
  273.         1: 'A/B/C*INV(G/H/I*INV(A/G/B/H/C/I))'
  274.         Pressing   ExCo  will return an expression full of "...^2" and "...^-2"
  275.         but pressin  FrColct instead  will return
  276.         1: 'A*A*H*I/(B*C*G*G*B*H*C*I)'       in 1min. 41 sec.
  277.         That is : A^2/(B^2*C^2*G^2) . You may not find this example very well
  278.         thought, but as you experiment with ExCo and FrColct, you'll
  279.         find out they're a good complement to each other, specially when ExCo returns
  280.         an expression full of '.../INV(...INV(.../.../...))...' and so on.
  281.  
  282. 7)        Suppose you want to integrate the following function: f(x,y)=x^2+y^2
  283.         in an interval defined by: D={ (x,y) : x^2+y^2+2*x }. Then the following
  284.         substitution will be best to use: x= -1+r*COS(t) , y= r*SIN(t) .
  285.         Now you'll need to calculate the functional matrix and then the determinat
  286.         of that change of coordinates to use it in the integration. There's
  287.         when Jacobi comes in the picture. You need only to input a list with
  288.         the substitution expressions, and another one with the variables
  289.         to be used in the derivations, in this case:
  290.         In:    2: { '-1+r*COS(t)' 'r*SIN(t)' }
  291.             1: { r t 0 }
  292.  
  293.         Why the zero as the third element in the list? As I explained
  294.         before, the program is designed to work with three variables,i.e.
  295.         it needs to have 3 elements in the list at level 1 !! Press Jacobi
  296.         and  2.15 seconds later you'll have the Jacobi-matrix in the stack.
  297.         Now you press DetExCo and get the collected determinant in 3.8 seconds,
  298.         That is     1: 'COS(t)^2*r+SIN(t)^2*r'
  299.         And  cos(a)^2+sin(a)^2=1  so the answer is simply   r  !!
  300.  
  301.  
  302. As I'm extremely tired of writing this program documentation, I hope you'll do
  303. without more examples. If there's anything you wonder, here's my e-adress:
  304.  
  305.             carlos@fy.chalmers.se
  306.  
  307. and here's my adress:    Carlos Ferraro            because I won't be here
  308.             Godhemsgatan 60 A        very much during the summer.
  309.             414 68  GOTHEMBURG
  310.             SWEDEN        Tel: +46 31 775 05 49
  311.  
  312.  
  313.  
  314. INSTRUCTIONS FOR DOWNLOADING:
  315.  
  316. You must have the following programs,( best if you have them at HOME), to run SYMB.
  317. Notice that you must apply   ASC->  to all of them !!
  318. Once you have done this, the     checksums  and         bytes   will be :
  319.  
  320. FrColct :             # 14123d          471
  321. ExCo :                # 30286d        61
  322. SYMB :                # 45696d        4303.5
  323. END_DOC
  324.  
  325. BEGIN_RDME symmat.rdm
  326. [
  327. Make sure you load exco as ExCo.
  328.  
  329. Make sure you load frcolct as FrColct.
  330. -chris ]
  331. END_RDME
  332.  
  333. BEGIN_ASC ExCo.asc
  334. %%HP: ;
  335. "D9D20E16323C03278BF1EB3A194A0278BF1E0CF1DE032167E19B6323C03278BF
  336. 151A0278BF1E0CF1DE032167E19B63293632B2130E467"
  337. END_ASC
  338.  
  339.  
  340. BEGIN_ASC FrColct.asc
  341. %%HP: ;
  342. "D9D20E16323C03278BF13C03247A208BA2084E202062D6872B1B21308BA209C2
  343. A284E202062D650FA1B2130B213095AF1DE0324B2A2279E19B6323C03247A208
  344. BA2084E2020621684E2020622650FA184E2020623650FA1B21308BA2084E2020
  345. 621684E2020622684E20206236EEDA150FA1B2130B213095AF1DE0324B2A2279
  346. E19B6323C03247A208BA2084E2020621684E2020622684E2020623650FA150FA
  347. 1B21308BA2084E2020621684E20206236EEDA184E2020622650FA1B2130B2130
  348. 95AF1DE0324B2A2279E19B6323C03247A208BA2084E2020623784E2020624750
  349. FA184E20206257EEDA1B21308BA2084E2020625784E20206237EEDA184E20206
  350. 24750FA1B2130B213095AF1DE0324B2A2279E19B6323C03247A208BA2084E202
  351. 062D684E202062E684E202062F6EEDA184E2020620750FA1EEDA1B21308BA208
  352. 4E202062D684E202062E6EEDA184E202062F6EEDA184E2020620750FA1B2130B
  353. 213095AF1DE0324B2A2279E19B6323C03247A208BA2084E2020623784E202062
  354. 4784E20206257EEDA1EEDA1B21308BA2084E2020623784E20206247EEDA184E2
  355. 0206257EEDA1B2130B213095AF1DE0324B2A2279E19B632EB3A178BF1E0CF1DE
  356. 032167E19B63293632B2130B273"
  357. END_ASC
  358.  
  359.  
  360.  
  361. Finally load this as SYMB  :
  362.  
  363. BEGIN_ASC symb.asc
  364. %%HP: ;
  365. "69A20FF75EF1000000303435453047A2084E2040548734F684E2070642734F6C
  366. 6364784E20404556374784E2050D869D4164784E20701407C69705277684E205
  367. 0449435057384E20504494350543B2130F800050D869D4164750D9D20E163245
  368. 63284E20106997632DCC0284E204069D41647C9432D9D20E1632EB3A193632B2
  369. 13084E20701407C6970527764563284E20106997632EFE0293632B2130490004
  370. 04456C6E440D9D20E1632DBBF1B7FC178BF178BF13F2A276BA15BCF190DA1ED2
  371. A276BA15BCF18DBF19C2A290DA1387C193632B2130B600050348634F6C650D9D
  372. 20E16321C432D6E20202416D6E20201426D6E2010E6E16329C2A2D6E20202416
  373. 8B9C10A132D6E201087D6E20202416D6E201087D6E20202416D6E2010876C7D1
  374. D6E2010E6D6E20201426D6E2010876C7D1704D1704D145632D6E202024169763
  375. 2DCC02C4232D6E20202416EF53293632B21306F00050D496E6F62750D9D20E16
  376. 3284E20404456C6E478BF18B9C11C432D6E201036D6E20201427D6E20203596E
  377. 16329C2A2D6E202035960A132D6E2010E4D6E20201427D6E2010E46C7D1D6E20
  378. 103684E20404456C6E4C4232D6E20203596387C1EF53293632B2130DC0003044
  379. 232330D9D20E163284E20600935471636B6803A25BCF1EEDA13F2A20DCF1EEDA
  380. 190DA193632B2130450003044333330D9D20E163284E20600935471636B61C43
  381. 2D6E20202413D6E20202423D6E20202433D6E20202443D6E20202453D6E20202
  382. 463D6E20202473D6E20202483D6E20202493E1632D6E20202413D6E20202453E
  383. EDA1D6E20202493EEDA1D6E20202413D6E20202463EEDA1D6E20202483EEDA19
  384. 0DA1D6E20202423D6E20202443EEDA1D6E20202493EEDA190DA1D6E20202423D
  385. 6E20202463EEDA1D6E20202473EEDA176BA1D6E20202433D6E20202443EEDA1D
  386. 6E20202483EEDA176BA1D6E20202433D6E20202453EEDA1D6E20202473EEDA19
  387. 0DA1EF53293632B2130EB10050445647E4E450D9D20E163278BF18B9C178BF19
  388. C2A290DA11C432D6E20201416D6E201037D6E2020C696E1632D8732D9D20D6E2
  389. 010379C2A2279E18A732D9D20D6E20201416EB3A1EB3A1B21305DF22D6E20103
  390. 7ED2A2279E18A732D9D20D6E2020141684E2030442323B21305DF22D6E201037
  391. 3F2A2279E18A732D9D20D6E2020141684E2030443333B21305DF22D6E2010373
  392. F2A2D5CE18A732D9D204B2A2D6E202014169C2A26C7D11C432D6E202024C6E16
  393. 329C2A2D6E2010370A132D6E2010E4ED2A2D6E2010370A132D6E201045D6E202
  394. 01416D6E2010456C7D1D6E2010E484E20404456C6E4C4232D6E2020C696387C1
  395. 3CE2278BF18B9C13F2A2D5CE1AFE2284E2050445647E4E45BF2284E203044333
  396. 35DF22D6E202024C6D6E2010E46C7D1EEDA1683A2D6E2010E49C2A276BA1D20B
  397. 1EEDA176BA1C4232EF532B21305DF22B21305DF22EF53293632B21300A200600
  398. 935471636B660D9D20E16321C432D6E20201416E16329C2A2D6E202014168B9C
  399. 10A132D6E2010E4D6E20201416D6E2010E46C7D1EB3A1C4232EF53293632B213
  400. 04800060A41636F6269660D9D20E16324B3C1EB3A11C432D6E20204687D6E202
  401. 04697D6E202046A7E1632B7FC11C432D6E2010A5E16329C2A2D6E2010A530132
  402. 78BF178BF1D6E20204687E7FE1E0CF1D6E20204697E7FE1E0CF13CE22D6E2010
  403. A5ED2A2D5CE1AFE22D9D20D6E202046A7E7FE1B21305BF228DBF15DF22D6E201
  404. 0A5387C1D6E2010A55BCF1C4232D6E2010A5387C1EF532EF53293632B2130731
  405. 0060452716E6370760D9D20E163278BF18B9C192CF19C2A26C7D18B9C11C432D
  406. 6E2020D4D6D6E203027F677D6E203036F6C6E16329C2A2D6E203036F6C60A132
  407. D6E202036E69C2A2D6E203027F6770A132D6E202027E6D6E2020D4D6D6E20202
  408. 7E66C7D1D6E202036E66C7D1C4232D6E203027F677387C1C4232D6E203036F6C
  409. 6387C1EF53293632B2130311003014444430D9D20E163292CF19C2A26C7D14B2
  410. A24B2A21C432D6E20201416D6E20202426D6E20201413D6E20201637D6E20301
  411. 41337E16323CE22D6E2020141368BC1D13A2D9AE1AFE22D9D20D6E202014169C
  412. 2A2387C145632D6E2020141697632DCC02B21305DF223CE22D6E202024269C2A
  413. 26C7D168BC1D13A2D9AE1AFE22D9D20D6E202024269C2A2387C145632D6E2020
  414. 242697632DCC02B21305DF22D6E202014168B9C145632D6E2020163797632DCC
  415. 02D6E202014169C2A26C7D18B9C145632D6E203014133797632DCC029C2A2D6E
  416. 202016370A132D6E201025D6E20201416D6E2010256C7D1D6E20202426D6E201
  417. 0256C7D11C432D6E202014C4D6E202024C4E16329C2A2D6E20301413370A132D
  418. 6E201034D6E202014C4D6E2010346C7D1D6E202024C4D6E2010346C7D176BA1C
  419. 4232D6E2030141337387C1EF532C4232D6E20201637387C1EF53293632B21305
  420. A20020944420D9D20E16321C432D6E20203597D6E2010E4E16329C2A2D6E2010
  421. E40A132D6E2010259C2A2D6E2010E40A132D6E2010343CE22D6E201025D6E201
  422. 034279E1AFE22D6E202035975BF224B2A25DF22C4232D6E2010E4387C1C4232D
  423. 6E2010E4387C1EF53293632B21308D0005035D657C64750D9D20E163292CF18B
  424. 9C14B2A21C432D6E20201416D6E2010D4D6E201035D6E20203437E16323CE22D
  425. 6E202014169C2A26C7D178BF168BC1D13A2D9AE1AFE22D9D20D6E202014169C2
  426. A2387C145632D6E2020141697632DCC02D6E20103545632D6E2020343797632D
  427. CC028B9C145632D6E20103597632DCC02B21305BF22D9D208B9C145632D6E202
  428. 0343797632DCC02B21305DF229C2A2D6E2010350A132D6E201094D6E20201416
  429. D6E2010946C7D11C432D6E20203436E16329C2A2D6E202034370A132D6E2010A
  430. 4D6E2010D4D6E20203436D6E2010A46C7D1EEDA1C4232EF532D6E20203437387
  431. C1C4232D6E201035387C1EF53293632B21303020050D4D657C64750D9D20E163
  432. 21C432D6E20201416D6E20202426E1632D6E202014168B9C1D6E202024268B9C
  433. 1D6E202024269C2A26C7D18B9C11C432D6E2010C4D6E201034D6E201025E1632
  434. 9C2A2D6E2010C40A132D6E201094D6E20201416D6E2010946C7D11C432D6E202
  435. 0C494E16329C2A2D6E2010250A132D6E2010A44B2A29C2A2D6E2010340A132D6
  436. E2010B4D6E2020C494D6E2010B46C7D1D6E20202426D6E2010B46C7D1D6E2010
  437. A46C7D1EEDA176BA1C4232C4232D6E201025387C1EF532C4232D6E2010C4387C
  438. 1EF532EF53293632B2130CA1003014852430D9D20E163278BF18B9C192CF184E
  439. 2050445647E4E484E2040548734F61C432D6E20202426D6E20201416D6E20103
  440. 7D6E20204456E16323CE22D6E202044564B2A2167E1F88E1AFE22D9D203CE22D
  441. 6E202024269C2A26C7D168BC1D13A2279E1AFE22D9D20D6E20202426EB3A1456
  442. 32D6E2020242697632DCC02B21305DF22858A1C2A205200035F6C66796E676C2
  443. 0277169647E2E2E2ED2A2485A19C2A2D6E2010370A132D6E2010E4D6E2020141
  444. 6D6E20202426D6E2010E484E2050348634F6C684E2050445647E4E484E204054
  445. 8734F6C4232D6E201037387C1D6E20204456B21305BF22D9D20D6E20202426D6
  446. E20201416C2A20F0000465647D3033F2A2485A1ED2A2F17A1B21305DF22EF532
  447. 93632B2130032003094E66730D9D20E163278BF184E2050445647E4E484E2040
  448. 548734F692CF18B9C11C432D6E20201416D6E20204456D6E201035E16323CE22
  449. D6E202044564B2A2167E1F88E1AFE22D9D209C2A2D6E2010350A132D6E201094
  450. 9C2A2D6E2010350A132D6E2010A4D6E201094D6E20201416D6E2010A484E2050
  451. D496E6F62784E2050445647E4E4683A2D6E201094D6E2010A476BA1D20B1EEDA
  452. 1C4232D6E201035387C1C4232D6E201035387C1D6E20204456B21305BF22D9D2
  453. 0D6E20201416C2A20F0000465647D3033F2A2485A1ED2A2F17A1B21305DF22EF
  454. 53293632B2130EB10070445647548734F670D9D20E163284E2050445647E4E48
  455. 58A1C2A20F10004456475627D6E20227561646979C2A2485A1C2A20F100034F6
  456. C6C656364796E676E2E2E2ED2A2485A184E2040548734F693632B21307A00070
  457. 1407C69705277670D9D20E163292CF18B9C14B2A21C432D6E20201416D6E2020
  458. 0527D6E201035D6E20203437E1632D8732D9D20D6E202005279C2A2279E18A73
  459. 2D9D20C9432D9D20E163284E2040548734F693632B213045632D6E2020052797
  460. 632DCC02B21305DF22D6E20200527ED2A2279E18A732D9D20C9432D9D20E1632
  461. 84E2070642734F6C6364793632B213045632D6E2020052797632DCC02B21305D
  462. F22B21305DF223CE22D6E202014169C2A26C7D168BC1D13A2D9AE1AFE22D9D20
  463. D6E202014169C2A2387C145632D6E2020141697632DCC02D6E20103545632D6E
  464. 2020343797632DCC029C2A245632D6E20103597632DCC02B21305BF22D9D20D6
  465. E202014169C2A26C7D18B9C145632D6E2020343797632DCC02B21305DF229C2A
  466. 2D6E2010350A132D6E201094D6E20201416D6E2010946C7D11C432D6E2020343
  467. 6E16329C2A2D6E202034370A132D6E2010A4D6E20203436D6E2010A46C7D1D6E
  468. 20200527EB3A1C4232EF532D6E20203437387C1C4232D6E201035387C1EF5329
  469. 3632B2130B030030C4D8D430D9D20E163278BF18B9C192CF19C2A26C7D18B9C1
  470. 1C432D6E20201416D6E201025D6E201034E16329C2A2D6E2010250A132D6E201
  471. 0E4D6E20201416D6E2010E46C7D1EB3A1C423247A20D6E201025D6E201034B21
  472. 30900D1EF53293632B21308C00030D4D8C430D9D20E16329C2A29C2A247A20B2
  473. 1301C432D6E201025D6E201034D6E2010C4E1632B7FC178BF13CE228B9C19C2A
  474. 2279E1AFE22D9D20EB3A145632D6E20103497632DCC02B21305BF22D9D20EB3A
  475. 145632D6E20103497632DCC0245632D6E20102597632DCC02B21305DF229C2A2
  476. D6E2010250A132D6E2010E4D6E201034387C19C2A2387C145632D6E2010C4976
  477. 32B4402C4232D6E2010C4EF53293632B213094100503427F6373750D9D20E163
  478. 284E20600935471636B6803A25BCF184E20600935471636B61C432D6E2020241
  479. 3D6E20202423D6E20202433D6E20201413D6E20201423D6E20201433E1632D6E
  480. 20201423D6E20202433EEDA1D6E20201433D6E20202423EEDA190DA184E20405
  481. 48734F6D6E20201413D6E20202433EEDA1D6E20201433D6E20202413EEDA190D
  482. A1599A184E2040548734F6D6E20201413D6E20202423EEDA1D6E20201423D6E2
  483. 0202413EEDA190DA184E2040548734F6EF5323F2A2387C193632B21300910040
  484. 6954176740D9D20E163278BF13CE2268BC178BF13F2A2279E1DBBF1803A2279E
  485. 1908E1AFE2284E2030D4D8C45DF2278BF18B9C11C432D6E20201416D6E2010E6
  486. E1632D6E202014168BA2084E201069599A1B2130D6E2010E684E2020944484E2
  487. 03014444478BF184E2070445647548734F6DBBF1EF53284E2030F475E4456328
  488. 4E204069D4164797632DCC0293632B2130421005005F677562750D9D20E16321
  489. C432D6E2020D416D6E2010E6E1632D6E2020D4169C2A2D6E2010E69C2A290DA1
  490. 30132D6E2020D41684E2050D4D657C647C4232EF532858A1C2A2071000D4E5E6
  491. 0227561646979C2A2485A1C2A20F100034F6C6C656364796E676E2E2E2ED2A24
  492. 85A19C2A284E20701407C69705277693632B21301010030F475E43069A20FF76
  493. 6100000004069D416474047A2047A208BA209C2A284E20106990DA1B21304B2A
  494. 29C2A2B213047A20ED2A28BA20803A284E20106990DA1B21303F2A2B213047A2
  495. 0233A23392099900000000000508BA20D13A284E20106990DA1B2130B2130B21
  496. 309B000205415208BA2033920000000000000054933920100000000000001084
  497. E201069ED2A2D20B1EEDA176BA184E2010693F2A2D20B190DA13392010000000
  498. 0000512084E201069EEDA190DA1B21309900090549676566716C657569033920
  499. 00028022346015306244"
  500. END_ASC
  501.  
  502.  
  503. BYTES: #764Eh 52.5
  504.  
  505. BEGIN_UU ExCo.uue
  506. begin 644 ExCo
  507. M2%!(4#0X+46=+>!A(\,P<K@?OJ.1I""'^^'`'^TP$G8>N38R#".'^U&A((?[
  508. 0X<`?[3`2=AZY-I)C(RLQ`"LQ
  509. `
  510. end
  511. sum -r/size 57040/109 section (from "begin" to "end")
  512. sum -r/size 36661/61 entire input file
  513. END_UU
  514.  
  515.  
  516. BYTES: #372Bh 459.5
  517.  
  518. BEGIN_UU FrColct.uue
  519. begin 644 FrColct
  520. M2%!(4#0X+46=+>!A(\,P<K@?PS!"IP*X*H#D`@(F;7BRL1(#N"J0+"I(+B!@
  521. MTE;P&BLQL!(#6?K1#B.THB*7'KDV,@PC="J`JP)(+B!@$H;D`@(F8@6O@>0"
  522. M`B9C!:^Q$@.X*H#D`@(F84@N(&`BAN0"`B9C[JU1\!HK,;`2`UGZT0XCM*(B
  523. MEQZY-C(,(W0J@*L"2"X@8!*&Y`(")F)(+B!@,E;P&@6OL1(#N"J`Y`(")F%(
  524. M+B!@,N;>&D@N(&`B5O`:*S&P$@-9^M$.([2B(I<>N38R#"-T*H"K`D@N(&`R
  525. MA^0"`B9T!:^!Y`(")G7NK;$2`[@J@.0"`B9U2"X@8#+GWAI(+B!@0E?P&BLQ
  526. ML!(#6?K1#B.THB*7'KDV,@PC="J`JP)(+B!@TH;D`@(F;D@N(&#RYMX:2"X@
  527. M8`)7\!KNK;$2`[@J@.0"`B9M2"X@8.+FWAI(+B!@\N;>&D@N(&`"5_`:*S&P
  528. M$@-9^M$.([2B(I<>N38R#"-T*H"K`D@N(&`RA^0"`B9T2"X@8%+GWAKNK;$2
  529. M`[@J@.0"`B9S2"X@8$+GWAI(+B!@4N?>&BLQL!(#6?K1#B.THB*7'KDVXCL:
  530. 2A_OAP!_M,!)V'KDVDF,C*S$`
  531. `
  532. end
  533. sum -r/size 33200/670 section (from "begin" to "end")
  534. sum -r/size 31711/468 entire input file
  535. END_UU
  536.  
  537.  
  538. BYTES: #4426h 4296.0
  539.  
  540. BEGIN_UU symb.uue
  541. begin 644 symb
  542. M2%!(4#0X+466*O!_Y1\````#0U-4`W0J@.0"!$5X0V](+G!@)#?TQC9&A^0"
  543. M!%1E<W1(+E#0:-D41H?D`@=!<&QY4')G2"Y00)0T!76#Y`(%1$E34#0K,?`(
  544. M``6-EDUA=`6=+>!A(U0V@N0"`99Y-M+,($@N0 %$;'22.=+>!A([ZCD6,C
  545. M*S&`Y`('07!L>5!R9U0V@N0"`99Y-N+O(#DVLA(#E`!`0%3&YD30V0(>-M*[
  546. M'WO/<;@?A_LQ+RIGJU'+'PFMX2TJ9ZM1RQ_8^Y$L*@FM,7@<.3:R$@-K`%`P
  547. MA#;TQE;0V0(>-A),(VTN("`4UN8"`D%B;2X0X.9A(\FBTN8"`D)AN,D!&B-M
  548. M+A"`U^8"`D)A;2X0@-?F`@)"86TN$(!G?!UM+A#@UN8"`D%B;2X0@&=\'0?4
  549. M<4`=5#;2Y@("0F%Y-M+,($PRTN8"`D)A_C628R,K,6`/``5-:6YO<@6=+>!A
  550. M(T@N0$!4QN9TN!^XR1%,(VTN$##6Y@("07)M+B`PE>9A(\FBTN8"`E-IH#'2
  551. MY@(!3FTN(!`DU^8"`4[&U]'F`@%C2"Y`0%3&YL0D(VTN(#"5-G@<_C628R,K
  552. M,=`,``-$,C(#G2W@82-(+F``.447-K:&,"JU_.'>&O.B`LT?[JV1T!HY-K(2
  553. M`U0`,$`T,S/0V0(>-H+D`@:04W1A8VO!--+F`@)",6TN("`DT^8"`D(S;2X@
  554. M($33Y@("0C5M+B`@9-/F`@)"-VTN(""$T^8"`D(Y'C;2Y@("0C%M+B`@5./>
  555. M&FTN(""4X]X:;2X@(!33Y@("0C;NK='F`@)"..ZMD=`:;2X@("33Y@("0C3N
  556. MK='F`@)".>ZMD=`:;2X@("33Y@("0C;NK='F`@)"-^ZM<;8:;2X@(#33Y@("
  557. M0C3NK='F`@)"..ZM<;8:;2X@(#33Y@("0C7NK='F`@)"-^ZMD=`:_C628R,K
  558. M,>`;``5$971.3@6=+>!A(X?[@9L<A_N1+"H)K1%,(VTN(!`4UN8"`7-M+B#`
  559. MEN9A(XTWTMD";2X0,)<L*G+I@7HCG2W0Y@("06&^H^$[&BLQ4/TB;2X0,.<M
  560. M*G+I@7HCG2W0Y@("06%(+C!`)".S$@/5+]+F`@%S\Z(BEQZH-]+9`FTN(!`4
  561. MAN0"`T0S,RLQ4/TB;2X0,#<O*EWL@7HCG2U`*RIM+B`0%)8L*L;7$4PC;2X@
  562. M(,3F82/)HM+F`@%SH#'2Y@(!3MZBTN8"`7.@,=+F`@%4;2X@$!36Y@(!5,;7
  563. MT>8"`4Y(+D!`5,;FQ"0C;2X@P)8V>!S#+G*X'[C),2\J7>RA[R)(+E!`5$;G
  564. MY%3[(D@N,$`T,U/](FTN("#$UN8"`4[&U^'>&H:CTN8"`4[)HG*V&BVPX=X:
  565. M9ZO!)"/^-;(2`]4OLA(#U2_B7R,Y-K(2`Z`"8``Y11<VMF;0V0(>-A),(VTN
  566. M(!`4YF$CR:+2Y@("06&XR0$:(VTN$.#4Y@("06%M+A#@9'P=OJ/!)"/^-9)C
  567. M(RLQ0`@`!DIA8V]B:0:=+>!A([3#X3L:P332Y@("9'AM+B!`EM?F`@)D>AXV
  568. MLO<<P332Y@(!6AXVDBPJ;2X0H#40(X?[<;@?;2X@0(;G]QX._-'F`@)D>7[O
  569. MX<`?PR[2Y@(!6MZBTL4>^B[2V0)M+B!`IN?W'BLQ4/LBV/M1_2)M+A"@-7@<
  570. M;2X0H%7+'TPRTN8"`5J#Q^%?(_XUDF,C*S%P$P`&5')A;G-P!ITMX&$CA_N!
  571. MFQPI_)$L*L;7@9L<P332Y@("36UM+C`@]W;7Y@(#8V]L'C:2+"IM+C`P]L8&
  572. M&B-M+B`PYI8L*FTN,"#W=@<:(VTN("#GUN8"`DUM;2X@(.=F?!UM+B`PYF9\
  573. M'4PRTN8"`W)O=X/'P20C;2XP,/;&-G@<_C628R,K,3`1``-!1$0#G2W@82,I
  574. M_)$L*L;702LJM*(23"-M+B`0%-;F`@)"8FTN(!`4T^8"`F%S;2XP$!0SYV$C
  575. MPR[2Y@("03&&R]$Q*IWJH>\BG2W0Y@("06')HC)X'%0VTN8"`D%A>3;2S"`K
  576. M,5#](L,NTN8"`D)BR:)B?!V&R]$Q*IWJH>\BG2W0Y@("0F+)HC)X'%0VTN8"
  577. M`D)B>3;2S"`K,5#](FTN(!`4AIL<5#;2Y@("87-Y-M+,(&TN(!`4EBPJQM>!
  578. MFQQ4-M+F`@-!,7-Y-M+,(,FBTN8"`F%SH#'2Y@(!4FTN(!`4UN8"`5+&U]'F
  579. M`@)"8FTN$"!E?!W!--+F`@)!3&TN("#$Y&$CR:+2Y@(#03%SH#'2Y@(!0VTN
  580. M(!#$U.8"`4/&U]'F`@)"3&TN$#!D?!UGJ\$D(VTN,!`4,S=X'/XUPB0C;2X@
  581. M$#8W>!S^-9)C(RLQ4"H``DE$`ITMX&$CP332Y@("4WEM+A#@Y&$CR:+2Y@(!
  582. M3J`QTN8"`5+)HM+F`@%.H#'2Y@(!0\,NTN8"`5)M+A`P))<>^B[2Y@("4WFU
  583. M+T(K*M4OPB0C;2X0X#1X'$PRTN8"`4Z#Q^%?(SDVLA(#V`!0,-56QT97T-D"
  584. M'C:2PA^XR4$K*L$TTN8"`D%A;2X0T-3F`@%3;2X@,#3G82/#+M+F`@)!8<FB
  585. M8GP=A_MAN!P=H]*I'OHNTMD";2X@$!26+"J#QT%E(VTN(!`4EF<CS0S2Y@(!
  586. M4U0VTN8"`D-S>3;2S""XR4%E(VTN$#"59R/-#+(2`[4OTMD"N,E!92-M+B`P
  587. M-)=G(\T,LA(#U2^2+"IM+A`P!1HC;2X0D-3F`@)!86TN$)!D?!W!--+F`@)#
  588. M8QXVDBPJ;2X@,#0'&B-M+A"@U.8"`4UM+B`P--;F`@%*QM?AWAI,,N)?(VTN
  589. M(#`T-W@<3#+2Y@(!4X/'X5\C.3:R$@,#`E#0U%;'1E?0V0(>-A),(VTN(!`4
  590. MUN8"`D)B'C;2Y@("06&XR='F`@)"8KC)T>8"`D)BR:)B?!VXR1%,(VTN$,#4
  591. MY@(!0VTN$"#E82/)HM+F`@%,H#'2Y@(!26TN(!`4UN8"`4G&UQ%,(VTN(,"4
  592. MY&$CR:+2Y@(!4J`QTN8"`4JTHI(L*FTN$#`$&B-M+A"PU.8"`DQ);2X0L&1\
  593. M'6TN("`DUN8"`4O&U]'F`@%*QM?AWAIGJ\$D(TPRTN8"`5*#Q^%?(TPRTN8"
  594. M`4R#Q^%?(_XUDF,C*S'`&@`#05A"`YTMX&$CA_N!FQPI_('D`@5$971.3D@N
  595. M0%"$-_063"-M+B`@)-;F`@)!86TN$##7Y@("1&4>-C+L(FTN($!41BLJ8>?Q
  596. MB![Z+M+9`L,NTN8"`D)BR:)B?!V&R]$Q*G+IH>\BG2W0Y@("0F*^HT%E(VTN
  597. M("`DEF<CS0RR$@/5+X*%&BPJ4`(`4V]L=FEN9RP@=V%I="XN+MZB0E@:R:+2
  598. MY@(!<Z`QTN8"`4YM+B`0%-;F`@)"8FTN$."$Y`(%0VA#;VQ(+E!`5$;GY(3D
  599. M`@1%>$-O3#+2Y@(!<X/'T>8"`D1E*S%0^R*=+=#F`@)"8FTN(!`4QJ("#P!`
  600. M5D;7`S,O*H2EX2TJ'Z>Q$@/5+^)?(SDVLA(#,`(PD.1F-]#9`AXV<K@?2"Y0
  601. M0%1&Y^2$Y`($17A#;RG\@9L<P332Y@("06%M+B!`5-;F`@%3'C8R[")M+B!`
  602. M5$8K*F'G\8@>^B[2V0+)HM+F`@%3H#'2Y@(!2<FBTN8"`5.@,=+F`@%*;2X0
  603. MD-3F`@)!86TN$*"$Y`(%36EN;W)(+E!`5$;GY&0X*FTN$)#4Y@(!2F>KT0(;
  604. M[JW!)"-M+A`P-7@<3#+2Y@(!4X/'T>8"`D1E*S%0^R*=+=#F`@)!82PJ\```
  605. M9&5T/3#SHD)8&MZB\G$:*S%0_2+^-9)C(RLQX!L`!T1E=$5X0V\'G2W@82-(
  606. M+E!`5$;GY(2%&BPJ\`$`1&5T97)M+B!R96%D><FB0E@:+"KP`0!#;VQL96-T
  607. M:6YG+BXNWJ)"6!I(+D!0A#?TEF,C*S%P"@`'07!L>5!R9P>=+>!A(RG\@9L<
  608. MM*(23"-M+B`0%-;F`@)0<FTN$##5Y@("0W,>-M)X(YTMT.8"`E!RR:(BEQZH
  609. M-]+9`IPTTMD"'C:"Y`($17A#;SDVLA(#5#;2Y@("4')Y-M+,("LQ4/TB;2X@
  610. M`"7G+2IRZ8%Z(YTMP$DCG2W@82-(+G!@)#?TQC9&EV,C*S%`92-M+B``)9=G
  611. M(\T,LA(#U2^R$@/5+S+L(FTN(!`4EBPJQM=AN!P=H]*I'OHNTMD";2X@$!26
  612. M+"J#QT%E(VTN(!`4EF<CS0S2Y@(!4U0VTN8"`D-S>3;2S"#)HD)E(VTN$#"5
  613. M9R/-#+(2`[4OTMD";2X@$!26+"K&UX&;'%0VTN8"`D-S>3;2S"`K,5#](LFB
  614. MTN8"`5.@,=+F`@%);2X@$!36Y@(!2<;7$4PC;2X@,#3F82/)HM+F`@)#<Z`Q
  615. MTN8"`4IM+B`P--;F`@%*QM?1Y@("4'*^H\$D(_XUTN8"`D-S@\?!)"-M+A`P
  616. M-7@<_C628R,K,;`P``-,C4T#G2W@82.'^X&;'"G\D2PJQM>!FQS!--+F`@)!
  617. M86TN$"#5Y@(!0QXVDBPJ;2X0(`4:(VTN$.#4Y@("06%M+A#@9'P=OJ/!)"-T
  618. M*M#F`@%2;2X0,+02`PG0X5\C.3:R$@/(`##0U,@TT-D"'C:2+"K)HD*G`BLQ
  619. M$$PC;2X0(-7F`@%#;2X0P.1A(WO/<;@?PRZ"FQS)HB*7'OHNTMD"OJ-!92-M
  620. M+A`PE&<CS0RR$@.U+]+9`KZC064C;2X0,)1G(\T,0F4C;2X0()5G(\T,LA(#
  621. MU2^2+"IM+A`@!1HC;2X0X-3F`@%#@\>1+"J#QT%E(VTN$,"49R-+!,(D(VTN
  622. M$,#D7R,Y-K(2`TD!4#`D]S8W5]#9`AXV@N0"!I!3=&%C:PBC4LL?2"Y@`#E%
  623. M%S:V%DPC;2X@(!33Y@("0C)M+B`@--/F`@)!,6TN(!`DT^8"`D$S'C;2Y@("
  624. M03)M+B`@-./>&FTN(!`TT^8"`D(R[JV1T!I(+D!0A#?TUN8"`D$Q;2X@(#3C
  625. MWAIM+B`0--/F`@)",>ZMD=`:E:F!Y`($17A#;VTN(!`4T^8"`D(R[JW1Y@("
  626. M03)M+B`@%./>&@FM@>0"!$5X0V_^-3(O*H/'D6,C*S$`&0`$ED5Q=@2=+>!A
  627. M(X?[,>PBALMQN!_SHB*7'KW[@3`J<NF1@![Z+H+D`@--C4S5+W*X'[C)$4PC
  628. M;2X@$!36Y@(!;AXVTN8"`D%AN"J`Y`(!EI6IL1(#;2X0X(;D`@))1$@N,!!$
  629. M1'2X'T@N<$!41E>$-_36NQ_^-8+D`@-/5TY4-H+D`@2636%T>3;2S"`Y-K(2
  630. M`R0!4`#U=E<F5]#9`AXV$DPC;2X@T!36Y@(!;AXVTN8"`DUAR:+2Y@(!;LFB
  631. MDM`:`S'2Y@("36%(+E#0U%;'1L<D(_XU@H4:+"IP`0!-7FX@<F5A9'G)HD)8
  632. M&BPJ\`$`0V]L;&5C=&EN9RXN+MZB0E@:R:*"Y`('07!L>5!R9SDVLA(#`0$P
  633. M\'3E-&"I`O]G%@```$!@V11&1T"G`G0J@*L"R:*"Y`(!E@FML1(#M**2+"HK
  634. M,4"G`MZB@JL""*."Y`(!E@FML1(#\Z*R$@-T*B`S*C,ID)D``````%"`JP(=
  635. MHX+D`@&6":VQ$@,K,;`2`[D`(%`4)8"K`C,I`````````$4YDP(!````````
  636. M`4@N$&#I+2HML.'>&F>K@>0"`9;SHM("&PFM,9,"`0``````%0)(+A!@Z=X:
  637. =":VQ$@.9`)!0E'969A?&5E>6,),"`"`((D,&40,&
  638. `
  639. end
  640. sum -r/size 57233/5953 section (from "begin" to "end")
  641. sum -r/size 33671/4304 entire input file
  642. END_UU
  643.